↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
T_IN_G(N) → U1_G(N, ll_in_ga(N, Xs))
T_IN_G(N) → LL_IN_GA(N, Xs)
LL_IN_GA(s(N), .(X, Xs)) → U5_GA(N, X, Xs, ll_in_ga(N, Xs))
LL_IN_GA(s(N), .(X, Xs)) → LL_IN_GA(N, Xs)
U1_G(N, ll_out_ga(N, Xs)) → U2_G(N, select_in_aaa(X, Xs, Xs1))
U1_G(N, ll_out_ga(N, Xs)) → SELECT_IN_AAA(X, Xs, Xs1)
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → U6_AAA(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AAA(X, Xs, Ys)
U2_G(N, select_out_aaa(X, Xs, Xs1)) → U3_G(N, ll_in_aa(M, Xs1))
U2_G(N, select_out_aaa(X, Xs, Xs1)) → LL_IN_AA(M, Xs1)
LL_IN_AA(s(N), .(X, Xs)) → U5_AA(N, X, Xs, ll_in_aa(N, Xs))
LL_IN_AA(s(N), .(X, Xs)) → LL_IN_AA(N, Xs)
U3_G(N, ll_out_aa(M, Xs1)) → U4_G(N, t_in_g(M))
U3_G(N, ll_out_aa(M, Xs1)) → T_IN_G(M)
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
T_IN_G(N) → U1_G(N, ll_in_ga(N, Xs))
T_IN_G(N) → LL_IN_GA(N, Xs)
LL_IN_GA(s(N), .(X, Xs)) → U5_GA(N, X, Xs, ll_in_ga(N, Xs))
LL_IN_GA(s(N), .(X, Xs)) → LL_IN_GA(N, Xs)
U1_G(N, ll_out_ga(N, Xs)) → U2_G(N, select_in_aaa(X, Xs, Xs1))
U1_G(N, ll_out_ga(N, Xs)) → SELECT_IN_AAA(X, Xs, Xs1)
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → U6_AAA(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AAA(X, Xs, Ys)
U2_G(N, select_out_aaa(X, Xs, Xs1)) → U3_G(N, ll_in_aa(M, Xs1))
U2_G(N, select_out_aaa(X, Xs, Xs1)) → LL_IN_AA(M, Xs1)
LL_IN_AA(s(N), .(X, Xs)) → U5_AA(N, X, Xs, ll_in_aa(N, Xs))
LL_IN_AA(s(N), .(X, Xs)) → LL_IN_AA(N, Xs)
U3_G(N, ll_out_aa(M, Xs1)) → U4_G(N, t_in_g(M))
U3_G(N, ll_out_aa(M, Xs1)) → T_IN_G(M)
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
LL_IN_AA(s(N), .(X, Xs)) → LL_IN_AA(N, Xs)
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
LL_IN_AA(s(N), .(X, Xs)) → LL_IN_AA(N, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
LL_IN_AA → LL_IN_AA
LL_IN_AA → LL_IN_AA
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AAA(X, Xs, Ys)
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AAA(X, Xs, Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
SELECT_IN_AAA → SELECT_IN_AAA
SELECT_IN_AAA → SELECT_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
LL_IN_GA(s(N), .(X, Xs)) → LL_IN_GA(N, Xs)
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
LL_IN_GA(s(N), .(X, Xs)) → LL_IN_GA(N, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PrologToPiTRSProof
LL_IN_GA(s(N)) → LL_IN_GA(N)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
U2_G(N, select_out_aaa(X, Xs, Xs1)) → U3_G(N, ll_in_aa(M, Xs1))
U3_G(N, ll_out_aa(M, Xs1)) → T_IN_G(M)
U1_G(N, ll_out_ga(N, Xs)) → U2_G(N, select_in_aaa(X, Xs, Xs1))
T_IN_G(N) → U1_G(N, ll_in_ga(N, Xs))
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
U2_G(N, select_out_aaa(X, Xs, Xs1)) → U3_G(N, ll_in_aa(M, Xs1))
U3_G(N, ll_out_aa(M, Xs1)) → T_IN_G(M)
U1_G(N, ll_out_ga(N, Xs)) → U2_G(N, select_in_aaa(X, Xs, Xs1))
T_IN_G(N) → U1_G(N, ll_in_ga(N, Xs))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
T_IN_G(N) → U1_G(ll_in_ga(N))
U3_G(ll_out_aa(M)) → T_IN_G(M)
U2_G(select_out_aaa) → U3_G(ll_in_aa)
U1_G(ll_out_ga) → U2_G(select_in_aaa)
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(ll_in_ga(N))
ll_in_ga(0) → ll_out_ga
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(ll_out_ga) → ll_out_ga
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0)
U2_G(select_out_aaa) → U3_G(U5_aa(ll_in_aa))
U2_G(select_out_aaa) → U3_G(ll_out_aa(0))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
U2_G(select_out_aaa) → U3_G(U5_aa(ll_in_aa))
T_IN_G(N) → U1_G(ll_in_ga(N))
U3_G(ll_out_aa(M)) → T_IN_G(M)
U1_G(ll_out_ga) → U2_G(select_in_aaa)
U2_G(select_out_aaa) → U3_G(ll_out_aa(0))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(ll_in_ga(N))
ll_in_ga(0) → ll_out_ga
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(ll_out_ga) → ll_out_ga
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0)
U1_G(ll_out_ga) → U2_G(U6_aaa(select_in_aaa))
U1_G(ll_out_ga) → U2_G(select_out_aaa)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
U2_G(select_out_aaa) → U3_G(U5_aa(ll_in_aa))
T_IN_G(N) → U1_G(ll_in_ga(N))
U1_G(ll_out_ga) → U2_G(U6_aaa(select_in_aaa))
U3_G(ll_out_aa(M)) → T_IN_G(M)
U1_G(ll_out_ga) → U2_G(select_out_aaa)
U2_G(select_out_aaa) → U3_G(ll_out_aa(0))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(ll_in_ga(N))
ll_in_ga(0) → ll_out_ga
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(ll_out_ga) → ll_out_ga
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0)
T_IN_G(0) → U1_G(ll_out_ga)
T_IN_G(s(x0)) → U1_G(U5_ga(ll_in_ga(x0)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ ForwardInstantiation
↳ PrologToPiTRSProof
U2_G(select_out_aaa) → U3_G(U5_aa(ll_in_aa))
T_IN_G(0) → U1_G(ll_out_ga)
T_IN_G(s(x0)) → U1_G(U5_ga(ll_in_ga(x0)))
U3_G(ll_out_aa(M)) → T_IN_G(M)
U1_G(ll_out_ga) → U2_G(U6_aaa(select_in_aaa))
U1_G(ll_out_ga) → U2_G(select_out_aaa)
U2_G(select_out_aaa) → U3_G(ll_out_aa(0))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(ll_in_ga(N))
ll_in_ga(0) → ll_out_ga
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(ll_out_ga) → ll_out_ga
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0)
U3_G(ll_out_aa(0)) → T_IN_G(0)
U3_G(ll_out_aa(s(y_0))) → T_IN_G(s(y_0))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ NonTerminationProof
↳ PrologToPiTRSProof
U3_G(ll_out_aa(0)) → T_IN_G(0)
U2_G(select_out_aaa) → U3_G(U5_aa(ll_in_aa))
U3_G(ll_out_aa(s(y_0))) → T_IN_G(s(y_0))
T_IN_G(0) → U1_G(ll_out_ga)
T_IN_G(s(x0)) → U1_G(U5_ga(ll_in_ga(x0)))
U1_G(ll_out_ga) → U2_G(U6_aaa(select_in_aaa))
U1_G(ll_out_ga) → U2_G(select_out_aaa)
U2_G(select_out_aaa) → U3_G(ll_out_aa(0))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(ll_in_ga(N))
ll_in_ga(0) → ll_out_ga
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(ll_out_ga) → ll_out_ga
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0)
U3_G(ll_out_aa(0)) → T_IN_G(0)
U2_G(select_out_aaa) → U3_G(U5_aa(ll_in_aa))
U3_G(ll_out_aa(s(y_0))) → T_IN_G(s(y_0))
T_IN_G(0) → U1_G(ll_out_ga)
T_IN_G(s(x0)) → U1_G(U5_ga(ll_in_ga(x0)))
U1_G(ll_out_ga) → U2_G(U6_aaa(select_in_aaa))
U1_G(ll_out_ga) → U2_G(select_out_aaa)
U2_G(select_out_aaa) → U3_G(ll_out_aa(0))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(ll_in_ga(N))
ll_in_ga(0) → ll_out_ga
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(ll_out_ga) → ll_out_ga
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
T_IN_G(N) → U1_G(N, ll_in_ga(N, Xs))
T_IN_G(N) → LL_IN_GA(N, Xs)
LL_IN_GA(s(N), .(X, Xs)) → U5_GA(N, X, Xs, ll_in_ga(N, Xs))
LL_IN_GA(s(N), .(X, Xs)) → LL_IN_GA(N, Xs)
U1_G(N, ll_out_ga(N, Xs)) → U2_G(N, select_in_aaa(X, Xs, Xs1))
U1_G(N, ll_out_ga(N, Xs)) → SELECT_IN_AAA(X, Xs, Xs1)
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → U6_AAA(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AAA(X, Xs, Ys)
U2_G(N, select_out_aaa(X, Xs, Xs1)) → U3_G(N, ll_in_aa(M, Xs1))
U2_G(N, select_out_aaa(X, Xs, Xs1)) → LL_IN_AA(M, Xs1)
LL_IN_AA(s(N), .(X, Xs)) → U5_AA(N, X, Xs, ll_in_aa(N, Xs))
LL_IN_AA(s(N), .(X, Xs)) → LL_IN_AA(N, Xs)
U3_G(N, ll_out_aa(M, Xs1)) → U4_G(N, t_in_g(M))
U3_G(N, ll_out_aa(M, Xs1)) → T_IN_G(M)
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
T_IN_G(N) → U1_G(N, ll_in_ga(N, Xs))
T_IN_G(N) → LL_IN_GA(N, Xs)
LL_IN_GA(s(N), .(X, Xs)) → U5_GA(N, X, Xs, ll_in_ga(N, Xs))
LL_IN_GA(s(N), .(X, Xs)) → LL_IN_GA(N, Xs)
U1_G(N, ll_out_ga(N, Xs)) → U2_G(N, select_in_aaa(X, Xs, Xs1))
U1_G(N, ll_out_ga(N, Xs)) → SELECT_IN_AAA(X, Xs, Xs1)
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → U6_AAA(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AAA(X, Xs, Ys)
U2_G(N, select_out_aaa(X, Xs, Xs1)) → U3_G(N, ll_in_aa(M, Xs1))
U2_G(N, select_out_aaa(X, Xs, Xs1)) → LL_IN_AA(M, Xs1)
LL_IN_AA(s(N), .(X, Xs)) → U5_AA(N, X, Xs, ll_in_aa(N, Xs))
LL_IN_AA(s(N), .(X, Xs)) → LL_IN_AA(N, Xs)
U3_G(N, ll_out_aa(M, Xs1)) → U4_G(N, t_in_g(M))
U3_G(N, ll_out_aa(M, Xs1)) → T_IN_G(M)
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
LL_IN_AA(s(N), .(X, Xs)) → LL_IN_AA(N, Xs)
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
LL_IN_AA(s(N), .(X, Xs)) → LL_IN_AA(N, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PiDP
LL_IN_AA → LL_IN_AA
LL_IN_AA → LL_IN_AA
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AAA(X, Xs, Ys)
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
SELECT_IN_AAA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AAA(X, Xs, Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
SELECT_IN_AAA → SELECT_IN_AAA
SELECT_IN_AAA → SELECT_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
LL_IN_GA(s(N), .(X, Xs)) → LL_IN_GA(N, Xs)
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
LL_IN_GA(s(N), .(X, Xs)) → LL_IN_GA(N, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
LL_IN_GA(s(N)) → LL_IN_GA(N)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
U2_G(N, select_out_aaa(X, Xs, Xs1)) → U3_G(N, ll_in_aa(M, Xs1))
U3_G(N, ll_out_aa(M, Xs1)) → T_IN_G(M)
U1_G(N, ll_out_ga(N, Xs)) → U2_G(N, select_in_aaa(X, Xs, Xs1))
T_IN_G(N) → U1_G(N, ll_in_ga(N, Xs))
t_in_g(N) → U1_g(N, ll_in_ga(N, Xs))
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
U1_g(N, ll_out_ga(N, Xs)) → U2_g(N, select_in_aaa(X, Xs, Xs1))
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aaa(X, Xs, Xs1)) → U3_g(N, ll_in_aa(M, Xs1))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U3_g(N, ll_out_aa(M, Xs1)) → U4_g(N, t_in_g(M))
t_in_g(0) → t_out_g(0)
U4_g(N, t_out_g(M)) → t_out_g(N)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
U2_G(N, select_out_aaa(X, Xs, Xs1)) → U3_G(N, ll_in_aa(M, Xs1))
U3_G(N, ll_out_aa(M, Xs1)) → T_IN_G(M)
U1_G(N, ll_out_ga(N, Xs)) → U2_G(N, select_in_aaa(X, Xs, Xs1))
T_IN_G(N) → U1_G(N, ll_in_ga(N, Xs))
ll_in_aa(s(N), .(X, Xs)) → U5_aa(N, X, Xs, ll_in_aa(N, Xs))
ll_in_aa(0, []) → ll_out_aa(0, [])
select_in_aaa(X, .(Y, Xs), .(Y, Ys)) → U6_aaa(X, Y, Xs, Ys, select_in_aaa(X, Xs, Ys))
select_in_aaa(X, .(X, Xs), Xs) → select_out_aaa(X, .(X, Xs), Xs)
ll_in_ga(s(N), .(X, Xs)) → U5_ga(N, X, Xs, ll_in_ga(N, Xs))
ll_in_ga(0, []) → ll_out_ga(0, [])
U5_aa(N, X, Xs, ll_out_aa(N, Xs)) → ll_out_aa(s(N), .(X, Xs))
U6_aaa(X, Y, Xs, Ys, select_out_aaa(X, Xs, Ys)) → select_out_aaa(X, .(Y, Xs), .(Y, Ys))
U5_ga(N, X, Xs, ll_out_ga(N, Xs)) → ll_out_ga(s(N), .(X, Xs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
U3_G(N, ll_out_aa(M)) → T_IN_G(M)
U1_G(N, ll_out_ga(N)) → U2_G(N, select_in_aaa)
U2_G(N, select_out_aaa) → U3_G(N, ll_in_aa)
T_IN_G(N) → U1_G(N, ll_in_ga(N))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
U2_G(y0, select_out_aaa) → U3_G(y0, ll_out_aa(0))
U2_G(y0, select_out_aaa) → U3_G(y0, U5_aa(ll_in_aa))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
U3_G(N, ll_out_aa(M)) → T_IN_G(M)
U1_G(N, ll_out_ga(N)) → U2_G(N, select_in_aaa)
U2_G(y0, select_out_aaa) → U3_G(y0, ll_out_aa(0))
U2_G(y0, select_out_aaa) → U3_G(y0, U5_aa(ll_in_aa))
T_IN_G(N) → U1_G(N, ll_in_ga(N))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
U1_G(y0, ll_out_ga(y0)) → U2_G(y0, select_out_aaa)
U1_G(y0, ll_out_ga(y0)) → U2_G(y0, U6_aaa(select_in_aaa))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
U1_G(y0, ll_out_ga(y0)) → U2_G(y0, select_out_aaa)
U3_G(N, ll_out_aa(M)) → T_IN_G(M)
U2_G(y0, select_out_aaa) → U3_G(y0, ll_out_aa(0))
U2_G(y0, select_out_aaa) → U3_G(y0, U5_aa(ll_in_aa))
U1_G(y0, ll_out_ga(y0)) → U2_G(y0, U6_aaa(select_in_aaa))
T_IN_G(N) → U1_G(N, ll_in_ga(N))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
T_IN_G(0) → U1_G(0, ll_out_ga(0))
T_IN_G(s(x0)) → U1_G(s(x0), U5_ga(x0, ll_in_ga(x0)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
U3_G(N, ll_out_aa(M)) → T_IN_G(M)
U1_G(y0, ll_out_ga(y0)) → U2_G(y0, select_out_aaa)
U2_G(y0, select_out_aaa) → U3_G(y0, ll_out_aa(0))
U2_G(y0, select_out_aaa) → U3_G(y0, U5_aa(ll_in_aa))
T_IN_G(s(x0)) → U1_G(s(x0), U5_ga(x0, ll_in_ga(x0)))
T_IN_G(0) → U1_G(0, ll_out_ga(0))
U1_G(y0, ll_out_ga(y0)) → U2_G(y0, U6_aaa(select_in_aaa))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), select_out_aaa)
U1_G(0, ll_out_ga(0)) → U2_G(0, select_out_aaa)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
U3_G(N, ll_out_aa(M)) → T_IN_G(M)
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), select_out_aaa)
U2_G(y0, select_out_aaa) → U3_G(y0, ll_out_aa(0))
U2_G(y0, select_out_aaa) → U3_G(y0, U5_aa(ll_in_aa))
U1_G(0, ll_out_ga(0)) → U2_G(0, select_out_aaa)
U1_G(y0, ll_out_ga(y0)) → U2_G(y0, U6_aaa(select_in_aaa))
T_IN_G(0) → U1_G(0, ll_out_ga(0))
T_IN_G(s(x0)) → U1_G(s(x0), U5_ga(x0, ll_in_ga(x0)))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
U1_G(0, ll_out_ga(0)) → U2_G(0, U6_aaa(select_in_aaa))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), U6_aaa(select_in_aaa))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
U3_G(N, ll_out_aa(M)) → T_IN_G(M)
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), select_out_aaa)
U1_G(0, ll_out_ga(0)) → U2_G(0, U6_aaa(select_in_aaa))
U2_G(y0, select_out_aaa) → U3_G(y0, ll_out_aa(0))
U2_G(y0, select_out_aaa) → U3_G(y0, U5_aa(ll_in_aa))
T_IN_G(s(x0)) → U1_G(s(x0), U5_ga(x0, ll_in_ga(x0)))
T_IN_G(0) → U1_G(0, ll_out_ga(0))
U1_G(0, ll_out_ga(0)) → U2_G(0, select_out_aaa)
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), U6_aaa(select_in_aaa))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
U2_G(0, select_out_aaa) → U3_G(0, ll_out_aa(0))
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), ll_out_aa(0))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
U3_G(N, ll_out_aa(M)) → T_IN_G(M)
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), select_out_aaa)
U1_G(0, ll_out_ga(0)) → U2_G(0, U6_aaa(select_in_aaa))
U2_G(y0, select_out_aaa) → U3_G(y0, U5_aa(ll_in_aa))
U1_G(0, ll_out_ga(0)) → U2_G(0, select_out_aaa)
T_IN_G(0) → U1_G(0, ll_out_ga(0))
T_IN_G(s(x0)) → U1_G(s(x0), U5_ga(x0, ll_in_ga(x0)))
U2_G(0, select_out_aaa) → U3_G(0, ll_out_aa(0))
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), ll_out_aa(0))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), U6_aaa(select_in_aaa))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), U5_aa(ll_in_aa))
U2_G(0, select_out_aaa) → U3_G(0, U5_aa(ll_in_aa))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
U3_G(N, ll_out_aa(M)) → T_IN_G(M)
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), select_out_aaa)
U1_G(0, ll_out_ga(0)) → U2_G(0, U6_aaa(select_in_aaa))
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), U5_aa(ll_in_aa))
T_IN_G(s(x0)) → U1_G(s(x0), U5_ga(x0, ll_in_ga(x0)))
T_IN_G(0) → U1_G(0, ll_out_ga(0))
U1_G(0, ll_out_ga(0)) → U2_G(0, select_out_aaa)
U2_G(0, select_out_aaa) → U3_G(0, ll_out_aa(0))
U2_G(0, select_out_aaa) → U3_G(0, U5_aa(ll_in_aa))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), U6_aaa(select_in_aaa))
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), ll_out_aa(0))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
U3_G(0, ll_out_aa(x1)) → T_IN_G(x1)
U3_G(s(z0), ll_out_aa(x1)) → T_IN_G(x1)
U3_G(s(z0), ll_out_aa(0)) → T_IN_G(0)
U3_G(0, ll_out_aa(0)) → T_IN_G(0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ ForwardInstantiation
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), U5_aa(ll_in_aa))
U3_G(0, ll_out_aa(x1)) → T_IN_G(x1)
U3_G(s(z0), ll_out_aa(x1)) → T_IN_G(x1)
U3_G(0, ll_out_aa(0)) → T_IN_G(0)
U2_G(0, select_out_aaa) → U3_G(0, ll_out_aa(0))
U2_G(0, select_out_aaa) → U3_G(0, U5_aa(ll_in_aa))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), U6_aaa(select_in_aaa))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), select_out_aaa)
U1_G(0, ll_out_ga(0)) → U2_G(0, U6_aaa(select_in_aaa))
T_IN_G(s(x0)) → U1_G(s(x0), U5_ga(x0, ll_in_ga(x0)))
T_IN_G(0) → U1_G(0, ll_out_ga(0))
U1_G(0, ll_out_ga(0)) → U2_G(0, select_out_aaa)
U3_G(s(z0), ll_out_aa(0)) → T_IN_G(0)
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), ll_out_aa(0))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
U3_G(0, ll_out_aa(s(y_0))) → T_IN_G(s(y_0))
U3_G(0, ll_out_aa(0)) → T_IN_G(0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), U5_aa(ll_in_aa))
U3_G(s(z0), ll_out_aa(x1)) → T_IN_G(x1)
U3_G(0, ll_out_aa(s(y_0))) → T_IN_G(s(y_0))
U2_G(0, select_out_aaa) → U3_G(0, ll_out_aa(0))
U3_G(0, ll_out_aa(0)) → T_IN_G(0)
U2_G(0, select_out_aaa) → U3_G(0, U5_aa(ll_in_aa))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), U6_aaa(select_in_aaa))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), select_out_aaa)
U1_G(0, ll_out_ga(0)) → U2_G(0, U6_aaa(select_in_aaa))
U1_G(0, ll_out_ga(0)) → U2_G(0, select_out_aaa)
T_IN_G(0) → U1_G(0, ll_out_ga(0))
T_IN_G(s(x0)) → U1_G(s(x0), U5_ga(x0, ll_in_ga(x0)))
U3_G(s(z0), ll_out_aa(0)) → T_IN_G(0)
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), ll_out_aa(0))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
U3_G(s(x0), ll_out_aa(s(y_0))) → T_IN_G(s(y_0))
U3_G(s(x0), ll_out_aa(0)) → T_IN_G(0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ NonTerminationProof
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), U5_aa(ll_in_aa))
U3_G(0, ll_out_aa(s(y_0))) → T_IN_G(s(y_0))
U3_G(0, ll_out_aa(0)) → T_IN_G(0)
U2_G(0, select_out_aaa) → U3_G(0, ll_out_aa(0))
U2_G(0, select_out_aaa) → U3_G(0, U5_aa(ll_in_aa))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), U6_aaa(select_in_aaa))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), select_out_aaa)
U1_G(0, ll_out_ga(0)) → U2_G(0, U6_aaa(select_in_aaa))
U3_G(s(x0), ll_out_aa(s(y_0))) → T_IN_G(s(y_0))
T_IN_G(s(x0)) → U1_G(s(x0), U5_ga(x0, ll_in_ga(x0)))
T_IN_G(0) → U1_G(0, ll_out_ga(0))
U1_G(0, ll_out_ga(0)) → U2_G(0, select_out_aaa)
U3_G(s(z0), ll_out_aa(0)) → T_IN_G(0)
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), ll_out_aa(0))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))
ll_in_aa
select_in_aaa
ll_in_ga(x0)
U5_aa(x0)
U6_aaa(x0)
U5_ga(x0, x1)
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), U5_aa(ll_in_aa))
U3_G(0, ll_out_aa(s(y_0))) → T_IN_G(s(y_0))
U3_G(0, ll_out_aa(0)) → T_IN_G(0)
U2_G(0, select_out_aaa) → U3_G(0, ll_out_aa(0))
U2_G(0, select_out_aaa) → U3_G(0, U5_aa(ll_in_aa))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), U6_aaa(select_in_aaa))
U1_G(s(z0), ll_out_ga(s(z0))) → U2_G(s(z0), select_out_aaa)
U1_G(0, ll_out_ga(0)) → U2_G(0, U6_aaa(select_in_aaa))
U3_G(s(x0), ll_out_aa(s(y_0))) → T_IN_G(s(y_0))
T_IN_G(s(x0)) → U1_G(s(x0), U5_ga(x0, ll_in_ga(x0)))
T_IN_G(0) → U1_G(0, ll_out_ga(0))
U1_G(0, ll_out_ga(0)) → U2_G(0, select_out_aaa)
U3_G(s(z0), ll_out_aa(0)) → T_IN_G(0)
U2_G(s(z0), select_out_aaa) → U3_G(s(z0), ll_out_aa(0))
ll_in_aa → U5_aa(ll_in_aa)
ll_in_aa → ll_out_aa(0)
select_in_aaa → U6_aaa(select_in_aaa)
select_in_aaa → select_out_aaa
ll_in_ga(s(N)) → U5_ga(N, ll_in_ga(N))
ll_in_ga(0) → ll_out_ga(0)
U5_aa(ll_out_aa(N)) → ll_out_aa(s(N))
U6_aaa(select_out_aaa) → select_out_aaa
U5_ga(N, ll_out_ga(N)) → ll_out_ga(s(N))